home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Libraries / DCLAP 4j / DClap / DChildApp.h < prev    next >
Encoding:
Text File  |  1995-12-17  |  1.7 KB  |  72 lines  |  [TEXT/R*ch]

  1. // DChildApp.h
  2. // d.g.gilbert
  3.  
  4. #ifndef _DCHILDAPP_
  5. #define _DCHILDAPP_
  6.  
  7. #include "DTaskMaster.h"
  8. #include "DFile.h"
  9.  
  10. class DList;
  11.  
  12.  
  13. class DChildFile : public DFile
  14. {    
  15. public:
  16.     enum kinds { kOutput, kInput, kStdin, kStdout, kStderr };
  17.     enum actions { kNoAction, kOpenText, kOpenPict };
  18.     enum { kDontDelete = false, kDeleteWhenDone = true };
  19.     short fAction;     
  20.     short fKind;
  21.     Boolean    fDelete;
  22.         
  23.     DChildFile( const char* filename, short kind= kOutput, Boolean deleteWhenDone = false,
  24.                             short doneAction= kOpenText, const char* openmode = NULL,
  25.                             const char* ftype = NULL, const char* fcreator = NULL);
  26.     virtual ~DChildFile();
  27.     virtual void ClearStorage();
  28. };
  29.  
  30. class DChildApp : public DTaskMaster
  31. {    
  32. public:
  33.     char  * fName, * fCmdline;
  34.     const char * fStdin, * fStdout, * fStderr;
  35.     long        fProcessNum;
  36.     short        fLaunched;
  37.     short        fResult;
  38.     Boolean    fReusable; // don't delete from manager list after run
  39.     DList * fFiles;  // of DChildFile
  40.     
  41.     DChildApp();
  42.     DChildApp( char* appname, char* cmdline= NULL, Boolean showStdout = true, 
  43.                         char* Stdinfile = NULL, Boolean showStderr = true);
  44.     virtual ~DChildApp();
  45.     virtual void AddFile( DChildFile* aFile);
  46.     virtual void AddFile( short filekind, char* name = NULL);
  47.     virtual void AddInputBuffer( short filekind, char* buffer, ulong buflen);
  48.     virtual Boolean Launch();
  49.     virtual void Finished();
  50.     virtual void FileAction( DChildFile* aFile);
  51. };
  52.  
  53.  
  54. class DExternalHandler : public DChildApp
  55. {    
  56. public:
  57.     DExternalHandler( char* cmdlineOrDocname);
  58.     virtual Boolean Launch();    
  59.     virtual void Finished();
  60. };
  61.  
  62. class DChildAppManager
  63. {    
  64. public:
  65.     static DList*     gChildList; // of DChildApp
  66.     static short      BuryDeadChildApp( long theEvent);
  67.     DChildAppManager();
  68. };
  69.  
  70.  
  71. #endif
  72.